package 链表题.反转单向链表;

import 链表题.ListNode;

public class Test3 {

    /**
     * 方法三: 递归
     */

    public static ListNode reverseList(ListNode p) {
        if (p == null || p.next == null) {
            return p;
        }
        ListNode last = reverseList(p.next);
        p.next.next = p;
        p.next = null;
        return last;
    }

    public static void main(String[] args) {
        ListNode o5 = new ListNode(5,null);
        ListNode o4 = new ListNode(4,o5);
        ListNode o3 = new ListNode(3,o4);
        ListNode o2 = new ListNode(2,o3);
        ListNode o1 = new ListNode(1,o2);
        System.out.println(o1);
        System.out.println(reverseList(o1));
    }
}
